Distortion cancellation using adaptive linearization

ABSTRACT

A method of signal processing includes receiving a distorted signal comprising a distorted component and an undistorted component, the distorted component being at least in part attributed to an exogenous signal, and performing linearization, based at least in part on the distorted signal and information associated with the exogenous signal, to obtain a corrected signal that is substantially similar to the undistorted component. An adaptive distortion reduction system includes an input interface configured to receive a distorted signal comprising a distorted component and an undistorted component, the distorted component being at least in part attributed to an exogenous signal; and an adaptive distortion reduction module coupled to the input interface, configured to perform linearization based at least in part on the distorted signal and information associated with the exogenous signal, to obtain a corrected signal that is substantially similar to the undistorted component.

CROSS REFERENCE TO OTHER APPLICATIONS

This application claims priority to U.S. Provisional Patent Application No. 60/930,889, entitled ADAPTIVE SELF-LINEARIZATION AND CANCELLATION OF EXOGENOUS INTER-MODULATION DISTORTION PRODUCTS, filed May 18, 2007, which application is incorporated herein by reference for all purposes.

This application is a continuation in part of co-pending U.S. patent application Ser. No. 11/728,725 (Attorney Docket No. OPTIP014) entitled ADAPTIVE SELF-LINEARIZATION WITH SEPARATION FILTER filed ADAPTIVE SELF-LINEARIZATION WITH SEPARATION FILTER, filed Mar. 26, 2007, which claims priority to U.S. Provisional Patent Application No. 60/848,425 (Attorney Docket No. OPTIP012+) entitled ADAPTIVE SELF-LINEARIZATION: FULL SYSTEM OPERATION AND ARCHITECTURE, filed Sep. 29, 2006, and which is incorporated herein by reference for all purposes.

BACKGROUND OF THE INVENTION

System noise and nonlinearity are problems present in many signal processing systems. For example, in a wireless receiver system, the received signal may interact with other unwanted signals such as local oscillator (LO) signal harmonics, system clock harmonics, power supply hum, or other leakage signals. These unwanted signals are sometimes referred to as exogenous signals since they are not anticipated signals in the receiver's signal path. The exogenous signals can lead to distortion, including intermodulation distortion (also known as intermods). Additionally, the receiver circuitry often has nonlinearities that further distort the received signal. For example, the analog to digital converter (ADC) typically has some nonlinear characteristics that can cause distortion.

A typical way of correcting system distortion is by applying a training signal with known characteristics to the system to determine the transfer function for system distortion, and then adjust a filter to provide an inverse function that cancels out the distortion. This training technique requires that the ideal, undistorted training signal be available during the training period. The technique is sometimes impractical since adding the training step to the manufacturing process will increase the cost of the device. Further, system nonlinearities may vary due to factors such as variations in signal paths, power supply, temperature, signal dynamics, Nyquist zone of the signal, and/or aging of components. It is, however, often impractical to re-train the device since the undistorted training signal may no longer be available. It would be desirable, therefore, to be able to correct signal distortion more easily.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings.

FIG. 1A is a system diagram illustrating an embodiment of a system that includes an adaptive self-linearization module.

FIG. 1B is a system diagram illustrating an embodiment of a wireless receiver that includes an adaptive self-linearization module.

FIG. 2 is a flowchart illustrating an embodiment of a signal processing process.

FIGS. 3A-3C are frequency domain signal spectrum diagrams illustrating an example of nonlinear distortion in a signal.

FIG. 4A is a diagram illustrating an embodiment of an adaptive self-linearization module.

FIG. 4B is a diagram illustrating an embodiment of a low latency adaptive self-linearization system.

FIG. 5A is a flowchart depicting an embodiment of an adaptive self-linearization process.

FIG. 5B is a flowchart illustrating another embodiment of an adaptive self-linearization process.

FIG. 6 is a diagram illustrating details of an embodiment of an adaptive linearization module.

FIG. 7 is a diagram illustrating an embodiment of a separation block.

FIG. 8 is a flowchart illustrating an embodiment of a process for extracting an undistorted component from a distorted signal.

FIG. 9 is a diagram illustrating the relative relationship of step size μ, number of taps N, and the type of linear component that can be effectively extracted.

FIGS. 10A-10C are frequency domain signal diagrams illustrating an example of a signal whose reference and target components occupy different frequency bands.

FIG. 11 is a block diagram illustrating another embodiment of an adaptive self-linearization module.

FIGS. 12A-12C are frequency domain signal diagrams illustrating an example where both the reference component and the target component occupy multiple frequency bands.

FIG. 13 is a block diagram illustrating an embodiment of an adaptive self-linearization system configured to correct a distorted signal (such as 1230 of FIG. 12C) whose reference components and target components occupy multiple separate frequency bands.

FIGS. 14A-14D are block diagrams illustrating an embodiment of an averaging persistence filter and its operations over four time cycles.

FIG. 15 is a flowchart illustrating another embodiment of a signal processing process.

FIG. 16 is a block diagram illustrating an embodiment of a separation block that includes an embodiment of an averaging persistence filter.

FIG. 17 is a flowchart illustrating another embodiment of a signal processing process.

FIG. 18A is a block diagram illustrating an embodiment of an ideal receiver system.

FIG. 18B includes frequency diagrams illustrating signals in ideal system 1800.

FIG. 19A is a block diagram illustrating a model of an example of a non-ideal receiver system.

FIG. 19B are frequency diagrams illustrating an example in which there is distortion attributed to exogenous signals and nonlinearities.

FIG. 20 is a block diagram illustrating a distortion reducing receiver system embodiment.

FIG. 21 is a flowchart illustrating an embodiment of a process for generating a digital signal with reduced distortion.

FIG. 22 is a block diagram illustrating an embodiment of an adaptive distortion reduction system.

FIG. 23 is a flowchart illustrating an embodiment of a process for performing adaptive distortion reduction.

FIG. 24A is a flowchart depicting an embodiment of a linearization process.

FIG. 24B is a flowchart illustrating another embodiment of an adaptive self-linearization process.

DETAILED DESCRIPTION

The invention can be implemented in numerous ways, including as a process; an apparatus; a system; a composition of matter; a computer program product embodied on a computer readable storage medium; and/or a processor, such as a processor configured to execute instructions stored on and/or provided by a memory coupled to the processor. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the invention. Unless stated otherwise, a component such as a processor or a memory described as being configured to perform a task may be implemented as a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. As used herein, the term ‘processor’ refers to one or more devices, circuits, and/or processing cores configured to process data, such as computer program instructions and/or signals.

A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured.

Adaptive linearization is described. FIGS. 1-17 illustrate adaptive self-linearization where no training information other than the distorted input signal itself is used to obtain a substantially linearized and distortion free output. FIGS. 18-24B illustrate adaptive linearization based at least in part on the distorted input signal and information associated with one or more exogenous signals that contributed to distortion of the input signal.

FIG. 1A is a system diagram illustrating an embodiment of a system that includes an adaptive self-linearization module. An unknown input signal x is distorted by block 102, generating a distorted signal y. Block 102 represents nonlinear distortion introduced by the transmission media, electronic circuits, or any other source. An adaptive self-linearization module 102 is configured to correct for the distortion based on the received signal y.

FIG. 1B is a system diagram illustrating an embodiment of a wireless receiver that includes an adaptive self-linearization module. The system is used to illustrate one application of the adaptive self-linearization module, although many other applications and configurations exist. In the example shown, system 100 is a receiver. The system has a number of components including a radio frequency receiver, a filter, an amplifier, an analog to digital converter. Each of the components has some nonlinear characteristics, causing nonlinear distortion to the input signal. An adaptive self-linearization module 102 is configured to correct for nonlinearities in the receiver electronics, as well as the nonlinearities in the transmission channel. The adaptive self-linearization module can also be used to correct nonlinearities in other systems where an input signal is distorted by nonlinearity introduced by device components and/or transmission media. For example, the adaptive self-linearization module is sometimes included in transmitters, amplifiers, analog to digital converters, and many other types of electronic circuits to correct for system nonlinearities.

FIG. 2 is a flowchart illustrating an embodiment of a signal processing process. Process 200 may be implemented on adaptive self-linearization module 102 of system 100. The process initiates when an unknown signal having an undistorted, ideal component and a distorted component is received (202). The signal is said to be unknown with respect to the receiver of the signal since specific characteristics that define the undistorted component of the signal, such as amplitude, phase, signal frequency, data sequence, or modulation scheme are not necessarily available to the receiver. In other words, the receiver does not necessarily have direct access to the undistorted component, nor is the receiver necessarily able to reproduce the undistorted component without further linearization. Self-linearization, sometimes also referred to as blind linearization, is performed based on the received signal to obtain an output signal that is substantially similar to the undistorted component (204). A training signal with known signal characteristics is not required. Thus, the nonlinearities in the system can be corrected while the system is operating in the field. The linearization can be done in real time since it requires no more than a few hundred milliseconds from the time an unknown signal is received. The nonlinear characteristics of the system may change during operation due to nonlinearity causing factors such as variations in the signal source, the paths, the power supply, temperature, signal dynamics, Nyquist zone of the signal, sampling frequency, aging of components, component value tolerances, etc. The adaptive self-linearization module can repeatedly or continuously adapt to correct the nonlinearities despite changes in any of these factors. Further, the operation of the adaptive self-linearization module is independent of the modulation scheme or encoding scheme of the received signal.

FIGS. 3A-3C are frequency domain signal spectrum diagrams illustrating an example of nonlinear distortion in a signal. In FIG. 3A, signal 300 is an ideal, undistorted signal x centered at ω₀. Nonlinear characteristics of the system lead to distorted components, which are shown in FIG. 3B. The distorted components occur at integer multiples of center frequency ω₀. The resulting signal to be received and processed by the adaptive self-linearization module is shown in FIG. 3C.

It is assumed that the distortion signal can be expressed using a Taylor series. Even harmonics such as 304 and 306 are caused by distortion terms that are even powers of the signal (x², x⁴, etc.). The even harmonics are relatively easy to remove since they are outside the fundamental frequency band of the desired signal. Odd harmonics such as 303, 305, and 307 are caused by distortion terms that are odd powers of the signal (x³, x⁵, etc.). It is more difficult to remove the odd harmonics since harmonic 303 lies within the fundamental frequency band of the desired signal. As will be shown in more detail below, the adaptive self-linearization module is able to approximately produce the distorted components, thereby approximately determine the ideal, undistorted signal 300. Adaptive self-linearization can be performed based on an unknown signal received while the device is operating (as opposed to using a known training signal). Further, an adaptive self-linearization module allows the device to be calibrated regardless of variations in the nonlinearity causing factors.

FIG. 4A is a diagram illustrating an embodiment of an adaptive self-linearization module. In the example shown, module 400 includes an adaptive linearization module 402 and a delay component 404. Based on its input y_(n), the adaptive linearization module configures its internal filters to generate an output that approximates the distorted component. Since the adaptation process leads to a delay of k samples in the output, the output is denoted as η_(n−k). Details of how the adaptation is made are described below. y_(n) is sent to a delay module to obtain a delayed version, y_(n−k). Combiner 406 combines η_(n−k) and y_(n−k) to obtain the desired, linearized signal component x_(n). As used herein, combining may be addition or subtraction.

FIG. 5A is a flowchart depicting an embodiment of an adaptive self-linearization process. Process 500 shown in the example may be implemented on an adaptive self-linearization module such as 400. During the process, an unknown distorted signal is separated into a reference component and a target component (502). The reference component, sometimes referred to as the offending signal, includes an estimate of one or more signal components that cause the nonlinear distortion in the unknown distorted signal. In some embodiments, the reference component includes an aggregated version of the undistorted component as well as the harmonics within the frequency band of the undistorted component. The harmonics are relatively small and their effects can be ignored for practical purposes. In some embodiments, the reference component includes one or more noise signals in a frequency band separate from that of the desired signal. The target component is the difference between the input signal and the reference component. A digital filter is adapted to generate a replica distortion signal that is substantially similar to the distorted component. The adaptation is based at least in part on the reference component and the target component (504). By separating the reference and target components, the system can train its filter based on a received signal whose characteristics are not known prior to the training. The replica distortion signal is subtracted from the unknown distorted signal to generate the distortion corrected output (506).

FIG. 6 is a diagram illustrating details of an embodiment of an adaptive linearization module. In the example shown, system 600 includes a separation block 602 and an adaptive filter block 612. y_(n) is a received signal with distortion. The signal is sent to separation block 602, which includes a persistence filter 604 and a nonlinear signal extractor 605. As will be shown in more detail below, the separation block is configured to extract from the input signal y_(n) a reference component ŷ_(n). In this example, ŷ_(n) is a linearly enhanced version of the input signal. The target component η is a function of the received signal and its history. At each time instance, η_(n) is expressed as y_(n)−ŷ_(n).

For example, let the received signal y_(n)=1.001 x_(n)+0.01 x_(n) ³, where x_(n) is the desired undistorted component, and 0.001 x_(n)+0.01 x_(n) ³ is the distorted component. A properly configured separation filter will produce a reference component ŷ_(n) that is approximately kx_(n) (k being a value close to 1), and a target component η_(n) that is y_(n)−kx_(n).

In some embodiments, the nonlinear signal extractor further includes a delay element to give the input the same amount of delay as the separation filter. In some embodiments, the nonlinear signal extractor optionally includes a band pass filter, a low pass filter, or a high pass filter. The additional filter is appropriate, for example, in applications where the frequency band of the reference component is known.

Returning to FIG. 6, ŷ_(n) and η_(n) are both sent to an adaptive filter block 612, which includes an adaptive nonlinear digital signal processor (DSP) 608. The adaptive nonlinear DSP is sometimes implemented using an adaptive nonlinear filter. DSP 608 may be implemented using any suitable techniques, such as techniques described in U.S. Pat. No. 6,856,191 by Batruni entitled “NONLINEAR FILTER” and U.S. Pat. No. 6,999,510 by Batruni entitled “NONLINEAR INVERSION”, both of which are herein incorporated by reference for all purposes. The patents incorporated by reference describe techniques for building nonlinear filters using linear elements, and for adapting such nonlinear filters to achieve desired transfer characteristics.

The DSP's inputs include the reference component ŷ_(n) and a feedback error signal e_(n) that is the difference between the target component η_(n) and the DSP's output {circumflex over (η)}_(n). The DSP is configured to use ŷ_(n) as its input and η_(n) as its training signal to adapt its filter coefficients and drive the error signal to a predetermined level. The filter coefficients of the DSP's digital filters may be adapted using adaptive techniques including Least Mean Squares (LMS), Recursive Least Squares (RLS), or any other suitable adaptive techniques. The DSP adapts to implement a filter having a transfer function that is approximately the same as the nonlinear transfer function of the system, so that eventually the DSP's output {circumflex over (η)}_(n) is about the same as η_(n). In other words, the DSP's adapted transfer function approximately corresponds to the transfer function representing the relationship of the distorted component with respect to the undistorted component. Assuming that the distorted component at the fundamental frequency is relatively small (e.g., 0.001 x_(n) as in the example discussed above), its effect is negligible and therefore is for all practical purposes ignored. In the above example, DSP 608 will adapt its filter parameters such that a transfer function of approximately 0.01 x_(n) ³ is obtained.

In the embodiment shown, the error signal of the DSP is expressed as:

e _(n)=η_(n) −W _(n) ^(T) Ŷ _(n)  (1)

where W_(n) ^(T)=[w_(n) w_(n−1) . . . w_(n−N+1) w_(n−N)] are the nonlinear coefficients and Ŷ_(n) ^(T)=[ŷ_(n) ŷ_(n−1) . . . ŷ_(n−N+1) ŷ_(n−N)] is the nonlinear filter's input vector.

The nonlinear coefficients are expressed using the following general form:

$\begin{matrix} {\begin{matrix} {w_{n} = {{a_{n}{\hat{y}}_{n}} + b_{n} + {\sum\limits_{j = 1}^{K}{c_{j,n}{{{A_{j,n}^{T}{\hat{Y}}_{n}} + \beta_{j,n}}}}}}} \\ {= {{a_{n}{\hat{y}}_{n}} + b_{n} + {\sum\limits_{j = 1}^{K}{{c_{j,n}\left( {{A_{j,n}^{T}{\hat{Y}}_{n}} + \beta_{j,n}} \right)}\lambda_{j,n}}}}} \end{matrix}{where}} & (2) \\ {\lambda_{j,n} = {{sign}\left( {{A_{j,n}^{T}{\hat{Y}}_{n}} + \beta_{j,n}} \right)}} & (3) \\ {{\hat{Y}}_{n} = \begin{bmatrix} {\hat{y}}_{n + M} & {\hat{y}}_{n + M - 1} & \ldots & {\hat{y}}_{n} & \ldots & {\hat{y}}_{n - M + 1} & {\hat{y}}_{n - M} \end{bmatrix}} & (4) \\ {A_{j,n}^{T} = \begin{bmatrix} \alpha_{M,n} & \alpha_{{M - 1},n} & \ldots & \alpha_{0,n} & \ldots & \alpha_{{{- M} + 1},n} & \alpha_{{- M},n} \end{bmatrix}} & (5) \end{matrix}$

The coefficients have a time index n because the filter is adaptive and therefore time-varying. The nonlinear coefficients are adapted as follows:

A _(j,n+1) ^(T) =A _(j,n) ^(T) +μc _(j,n)λ_(j,n) Ŷ _(n) e _(n) ŷ _(n)  (6)

β_(j,n+1)=β_(j,n) +μc _(j,n)λ_(j,n) e _(n) ŷ _(n)  (7)

c _(j,n+1) =c _(j,n) +μ|A _(j,n) ^(T) Ŷ _(n)+β_(j,n) |e _(n) ŷ _(n)  (8)

a _(j,n+1) =a _(j,n) +μŷ _(n) e _(n) ŷ _(n)  (9)

b _(j,n+1) =b _(j,n) +μe _(n) ŷ _(n)  (10)

Returning to FIG. 6, separation block 602 employs persistence filter 604 for separating the reference component from the received signal. The persistence filter is designed to boost the linear signal components and attenuate the noise and nonlinear signal components in the received signal. An analogy to the persistence filter is a camera shutter, which allows light to pass for a period of time in order to capture the stationary image. The background images that are non-stationary over this period of time become blurry. Like a camera shutter, over a period of time, the persistence filter captures the persistent portion of an input signal and removes the non-persistent portion. The persistence filter operates on pseudo-stationary input signals that are not rapidly changing (for example, a signal that is stationary for at least a few milliseconds). For a pseudo stationary input signal, the persistent portion is the average of the desired reference component, which is relatively stable and enhances over time. In some embodiments, the persistence filter is designed as an averaging, linear filter that emphasizes the undistorted signal over noise, and emphasizes linear signal components over nonlinear distortion.

FIG. 7 is a diagram illustrating an embodiment of a separation block. In this example, separation block 700 includes a persistence filter 702, which includes a delay line 704 to which the input y_(n) is sent, and a plurality of coefficient multipliers 706. The number of taps in the delay line is represented as N=2K+1. In the example shown, K=512, which means that the delay line has 1025 taps for delays of 0, 1, 2, . . . 1024. Each y_(i) (i=n+512, n+511, . . . , n−511, n−512) is scaled by multiplying with an adaptable coefficient v_(i). The multiplication results are summed, producing the linear reference component ŷ_(n). The center tap value ŷ_(n) is selected, and ŷ_(n) is subtracted from y_(n) to produce an error ε_(n). In this case, ε_(n) corresponds to target η_(n). The error is fed back to update coefficients v_(i). An adaptive algorithm such as LMS or RLS is used to update the coefficients until ε_(n) approaches some predefined threshold value. The separation block is configured to receive the input y_(n), and aggregate y_(n) over a period of time to produce an aggregate signal that is substantially similar to the undistorted component. The aggregate signal is considered substantially similar when ε_(n) meets some predefined threshold value. The aggregate signal is then subtracted from the received input.

FIG. 8 is a flowchart illustrating an embodiment of a process for extracting an undistorted component from a distorted signal. Process 800 may be implemented on a separation block, such as 700 shown in FIG. 7. In this example, during the process, a digital signal that includes an undistorted component and a distorted component is received (802). A plurality of samples of the received signal is multiplied with a plurality of coefficients (804). The multiplication results are summed to produce an aggregate (805). The aggregate enhances the undistorted component and attenuates the distorted component. An error is generated by taking the difference between the aggregate and a sample of the received signal (806). The error signal is compared to a threshold level (807). If the threshold level is reached, the filter has converged and the process stops (810). Else, the error is fed back to adapt the coefficients (808) and the process is repeated for a new set of input samples. The process may be repeated until the filter converges and the error reaches some predetermined level.

The persistence filter can be described using the following functions:

ε_(n) =y _(n) −V _(n) Y _(n)  (11)

ε_(n) y _(n) −ŷ _(n)  (12)

V _(n+1) =vV _(n)με_(n) Y _(n)  (13)

where Y_(n)=[y_(n+K) y_(n+K−1) . . . y_(n) . . . y_(n−K−1) y_(n−K)], μ is the adaptation step size that controls the persistency factor of the filter and v is the forgetting factor that controls the speed with which the filter adapts to changing signal dynamics.

The number of filter taps N (also referred to as the order of the filter) and the adaptive step size μ control the persistence filter's operations. A given filter order and step size combination may be particularly effective for emphasizing the received signal's linear component within a certain range of bandwidth and amplitude. FIG. 9 is a diagram illustrating the relative relationship of step size μ, number of taps N, and the type of linear component that can be effectively extracted. The diagram informs the choice of μ and N. Generally, a higher N (i.e., a greater number of filter taps) should be used as the amplitude of the linear component goes down, and a smaller μ (i.e., a smaller step size) should be used as the bandwidth of the linear component goes down. As shown in the diagram, if the linear component has a relatively large amplitude and a relatively narrow bandwidth (such as signal 902), a persistence filter with a small μ and a small N produces good results. A linear component having a similarly large amplitude but a wider bandwidth (signal 904) requires a relatively small N and allows a greater μ. A small amplitude and large bandwidth linear component (signal 906) requires a large N and a large μ. A small amplitude and narrow bandwidth linear component (signal 908) requires a small μ and a large N. During operation, N and μ can be adjusted to more effectively generate the emphasized linear component. For example, in some embodiments, a peak detector and a power level detector are used to detect the strength of the signal. The signal strength is a function of the signal's peak and bandwidth. Based on the detected signal strength, appropriate adjustments to N and μ are made according to system requirements to control the adaptation.

In some embodiments, the linearization process requires a large number of samples. The delay k sometimes corresponds to hundreds or even thousands of samples, resulting in delay on the order of tens or even hundreds of milliseconds. Some applications (e.g. telecommunication applications) may require the linearization process to have a lower latency. FIG. 4B is a diagram illustrating an embodiment of a low latency adaptive self-linearization system. In the example shown, system 420 is configured to have much lower latency than system 400. The DSPs shown in the system may be implemented as general or special purpose processors, or configurable filters. Adaptive linearization module 422 configures an internal DSP to simulate the nonlinear transfer function to be corrected and produces an output that is approximately equal to the nonlinear residual signal. As discussed above, assuming that the distortion within the fundamental frequency band is relatively small, a successfully adapted and configured DSP will have a transfer function that is approximately equal to the nonlinear transfer function to be corrected. The linearization module outputs the configuration parameters, w, to a shadow nonlinear DSP 424, which uses the parameters to configure its filters and duplicate the transfer function of the DSP employed by the adaptive linearization module. DSP 424's latency L is on the order of a few milliseconds, which is significantly smaller than the delay due to adaptation k. As such, system 420 has significantly less delay than system 400.

FIG. 5B is a flowchart illustrating another embodiment of an adaptive self-linearization process. Process 550 shown in the example may be implemented on a low latency adaptive self-linearization module such as 420. During the process, an unknown distorted signal is separated into a reference signal and a target signal (552). A first digital filter is adapted to generate a replica distortion signal that is substantially similar to the distorted component, where the adaptation is based at least in part on the reference signal (554). A second digital filter is configured using coefficients from the adapted first digital filter (556). A second replica distortion signal that is substantially similar to the distorted component using the second digital filter (558).

In some embodiments, the reference component and the target component occupy separate frequency bands. FIGS. 10A-10C are frequency domain signal diagrams illustrating an example of a signal whose reference and target components occupy different frequency bands. FIG. 10A shows the ideal, undistorted component 1000, which is limited to frequency band b₀. An example of the ideal signal is a radio frequency (RF) signal used in a wireless communication system that employs some form of frequency division, where the signal occupies a specific frequency channel b₀. FIG. 10B shows the distortion component, which includes noise signal component 1002 that is outside b₀, as well as harmonics of the noise component, including 1004 which falls within frequency channel b₀, and 1006 which lies outside b₀. An example of noise signal 1002 is another RF signal occupying an adjacent frequency channel relative to signal 1000 and causing distortion in frequency channel b₀. FIG. 10C shows the resulting signal 1005. Although the general frequency ranges of the reference and target components are known, the specific characteristics of the signal components are still unknown. Thus, the signal is suitable for processing by any adaptive self-linearization module that implements processes 200 or 500.

An adaptive self-linearization module such as 400 or 420 described above can be used to process the type of signal shown in FIG. 10C. Assuming that the desired signal causes little distortion in its own frequency band and that most of the distortion in the received signal is caused by noise from neighboring frequency channel(s), it is possible to employ adaptive self-linearization modules with less complex circuitry by taking advantage of the fact that the reference and target components reside in different frequency bands. FIG. 11 is a block diagram illustrating another embodiment of an adaptive self-linearization module. In the example shown, separation block 1102 includes a reference signal band-specific filter 1104 and a target signal band-specific filter 1114. In some embodiments, the reference band-specific filter includes a band-stop filter configured to extract from the received signal the noise component and its harmonics outside frequency band b₀ and suppress the components within b₀, generating the reference component ŷ_(n). The target signal band-specific filter includes a band-pass filter configured to pass components in frequency band b₀ and attenuate the rest of the frequencies, generating the target component η_(n).

Based on reference component ŷ_(n), DSP adapts its parameters to generate a replica of the distorted signal, {circumflex over (η)}_(n). The adaptation is possible because the reference component and the distorted signal are correlated. {circumflex over (η)}_(n) is subtracted from the target component {circumflex over (η)}_(n) to obtain the desired signal x_(n). A suitable adaptation technique such as LMS or RLS is used to adapt the DSP. Some embodiments base the adaptation on equations (1)-(10).

Referring to FIGS. 10A-10C as an example, the input signal y_(n) corresponds to signal 1006. The separation block extracts reference component ŷ_(n) which corresponds to components 1002 plus 1006 and target component {circumflex over (η)}_(n) which corresponds to component 1008. In some embodiments, the separation block further limits the bandwidth of reference component extraction such that only 1002 is extracted. Based on ŷ_(n) and its feedback signal x_(n), the adaptive DSP adapts its transfer function to generate {circumflex over (η)}_(n), which approximately corresponds to signal 1004

In some embodiments, the offending signals causing distortion in the fundamental frequency band of the desired signal may reside in multiple frequency bands. FIGS. 12A-12C are frequency domain signal diagrams illustrating an example where both the reference component and the target component occupy multiple frequency bands. FIG. 12A shows the undistorted signal components 1200-1204, which occupy separate frequency bands b₁-b₃. FIG. 12B shows the distorted signal components, which includes several noise components 1210-1214 which reside outside b₁-b₃, and their harmonics 1216, 1218, and 1220 which reside within b₁, b₂, and b₃ respectively. FIG. 12C shows the resulting distorted signal 1230.

FIG. 13 is a block diagram illustrating an embodiment of an adaptive self-linearization system configured to correct a distorted signal (such as 1230 of FIG. 12C) whose reference components and target components occupy multiple separate frequency bands. In the example shown, system 1300 includes a reference component band-specific filter 1304 for selecting reference signal components ŷ_(n) that cause distortion (e.g., signal components 1210-1214 shown in FIG. 12B). Filter 1304 may be implemented using a plurality of bandpass filters. The system also includes N target component band-specific filters for producing target components ηk_(n) (k=1, . . . , N) in specific frequency bands. In the example shown in FIG. 12C, N=3, and target components corresponding to 1232, 1234 and 1236 are produced. N DSPs are each adapted based on the reference component and a corresponding feedback signal xk_(n) to generate distortion components {circumflex over (η)}k_(n) (k=1, . . . , N). Each {circumflex over (η)}k_(n) is subtracted from the target component η_(n) to obtain the desired signal x_(n). The adaptation technique of each DSP is similar to what was described in FIG. 11.

Averaging Persistence Filter

The persistence filter implementation shown in 702 of in FIG. 7 above has many coefficients and multipliers. During each time cycle, 1024 multiplications are carried out to obtain a new output in filter 702. The size and power dissipation required for such a large filter can be expensive. One way to reduce the number of multiplications is to simply compute an output every R time cycles (R>1) rather than every time cycle, which can reduce the number of multipliers and adders by a factor of R. For example, if an output is computed every 8 samples, the number of multipliers/coefficients can be reduced from 1024 to 128. The tradeoff of such an implementation is that the amount of time it takes for the filter to reach convergence (i.e., for the adaptation error to stabilize and reach a certain limit) is increased by a factor of R. The speed of convergence for a persistence filter such as 702 that produces one output for every input sample is said to be proportional to the input data rate. Accordingly, the speed of convergence for a slower but otherwise unimproved persistence filter that produces one input for every R input samples is proportional to 1/R the input data rate.

A technique for implementing a persistence filter with reduced complexity and low power consumption, without compromising convergence time is described below. The technique generates an output for every R time cycles. A reduction in the number of multipliers by a factor of R is achieved. For purposes of example, the following discussion illustrates the technique for R=4. The technique is also applicable for other reduction factor values.

A persistence filter can be described using equations (11)-(13). The filter adapts its coefficients and drives its output to be close to the target input signal, until the error (i.e., the difference between the output and the target) meets some predetermined threshold. Based on the equations, a set of 4 linearly enhanced components at time cycles n, n+1, n+2, and n+3 are computed as follows:

ŷ _(n) =[y _(n) y _(n−1) . . . y _(n−N) ]V _(n)  (14)

ŷ _(n+1) =[y _(n+1) y _(n) . . . y _(n−N+1) ]V _(n+1)  (15)

ŷ _(n+2) =[y _(n+2) y _(n+1) . . . y _(n−N+2) ]V _(n+2)  (16)

ŷ _(n+3) =[y _(n+3) y _(n+2) . . . y _(n−N+3) ]V _(n+3)  (17)

Each linearly enhanced component ŷ_(i) is equivalent to an aggregate of a set of samples that is taken at time cycle i and that is scaled by the coefficients. At each sample time cycle, an update errors is generated:

ε_(n) =y _(n) −ŷ _(n)  (18)

ε_(n+1) =y _(n+1) −ŷ _(n+1)  (19)

ε_(n+2) =y _(n+2) −y _(n+2)  (20)

ε_(n+3) =y _(n+3) −ŷ _(n+3)  (21)

For the sake of simplicity, assume that v=1. Based equation (13), the following coefficient updates are obtained:

V _(n+1) =V _(n)+με_(n) Y _(n)  (22)

V _(n+2) =V _(n+1)+με_(n+1) Y _(n+1)  (23)

V _(n+3) =V _(n+3)+με_(n+3) Y _(n+3)  (24)

V _(n+4) =V _(n+3)+με_(n+3) Y _(n+3)  (25)

Thus, V _(n+4) =V _(n)+μ(ε_(n) Y _(n)+ε_(n+1) Y _(n+1)+ε_(n+2) Y _(n+2)+ε_(n+3) Y _(n+3))  (26)

Alternatively, the error of the persistence filter can be estimated at a lower rate but with greater accuracy by computing an error for every 4 sample time cycles rather than an error for every sample time cycle. Such a filter, referred to as an averaging persistence filter, can be modeled as follows:

$\begin{matrix} \begin{matrix} {{\hat{\omega}}_{n + 3} = {{\hat{y}}_{n} + {\hat{y}}_{n + 1} + {\hat{y}}_{n + 2} + {\hat{y}}_{n + 3}}} \\ {= \left\lbrack {\left( {y_{n} + y_{n + 1} + y_{n + 2} + y_{n + 3}} \right)\left( {y_{n - 1} + y_{n} + y_{n + 1} + y_{n + 2}} \right)\mspace{11mu} \ldots} \right.} \\ {\left. \left( {y_{n - N} + y_{n - N + 1} + y_{n - N + 2} + y_{n - N + 3}} \right) \right\rbrack V_{n}} \\ {= {\begin{bmatrix} s_{n + 3} & s_{n + 2} & s_{n + 1} & s_{n} & \ldots & s_{n - N + 3} \end{bmatrix}V_{n}}} \\ {= {{\overset{\sim}{Y}}_{n + 3}V_{n}}} \end{matrix} & (27) \end{matrix}$

where {circumflex over (ω)}_(n+3) is an aggregate of several linearly enhanced signals. In this example, {circumflex over (ω)}_(n+3) is an aggregate of 4 linearly enhanced signals ŷ_(n), ŷ_(n+1) ŷ_(n+2) and ŷ_(n+3). Each linearly enhanced signal can be viewed as an aggregate of a set of samples that is scaled by the set of coefficients (in other words, the linearly enhanced signal is the scalar product of an input samples vector (e.g., [y_(n)y_(n−1 y) _(n−2) . . . y_(n−N)]) and a coefficient vector). The same set of coefficients V_(n) is used to scale 4 sets of input samples from different sample times. Further,

ω_(n+3) =y _(n) +y _(n+1) +y _(n+2) +y _(n+3)  (28)

where ω_(n+3) is a sum of the desired target input signal over 4 consecutive samples. An average error value is generated for every 4 input samples by taking the difference between the sum of the aggregated signals and the sum of the input signal samples:

ê _(n+3) =w _(n+3) −w _(n+3)  (29)

Accordingly, the filter coefficient vector is also updated every 4 samples:

V _(n+4) =V _(n) +μ( ê _(n+3) {tilde over (Y)} _(n)  (30)

An averaging persistence filter that is updated every R samples and generates an output sample for every R input samples is simpler to implement than a standard persistence filter such as 702 that is updated every sample since the computing requirements of the former are reduced by a factor of R. Averaging over R samples also makes the error samples less noisy. Even though an error sample is generated every R input samples, averaging allows a larger step size μ to be used. As will be described in greater detail below, by storing extra data and using shared multipliers, the averaging persistence filter achieves power savings without sacrificing convergence speed. Although the averaging persistence filter is updated at 1/R the input data rate and generates one output for every R input samples, the filter still converges at a speed that is proportional to the data rate of the input. In other words, the averaging persistence filter's speed of convergence is the same as a more complicated persistence filter (such as 702) that generates an output for every input sample.

FIGS. 14A-14D are block diagrams illustrating an embodiment of an averaging persistence filter and its operations over four time cycles. In the examples, an averaging persistence filter 752 that implements the filter model described in equations (27)-(30) above is shown. The averaging persistence filter can be used in a separation block such as separation block 700 of FIG. 7 in place of persistence filter 702. The averaging persistence filter in this example generates an output for every 4 input samples in this example, giving a reduction factor R of 4. The inputs and intermediate values during time cycles 1, 2, 3, and 4 are illustrated in FIGS. 14A, 14B, 14C, and 14D, respectively.

As shown in FIG. 14A, averaging persistence filter 752 includes an input interface 754 configured to receive data samples. A processor 753 is directly or indirectly coupled to the input interface. As will be described in greater detail below, the processor is configured to determining an aggregate of a plurality of linear reference components. Each linear reference component is approximately equal to an aggregate of a corresponding set of digital signal samples that is scaled by the plurality of coefficients.

In this example, the processor includes a delay line 758, which is configured to store 4 consecutive samples of the input signal. A shift register or other appropriate memory elements can be used to implement the delay line. The samples are summed by an adder 760. The sum is stored in another delay line 762, which can be implemented using a shift register or the like. The coefficients [v₁ . . . v_(N−1)] are stored in memory elements 764 a, 764 b, etc., which may be parts of the same component or separate components. During each time cycle, selected coefficients are used to multiply with appropriate sums. Multipliers 768 a, 768 b, etc., are each shared by corresponding groups of 4 coefficients. The results are sent to an accumulator 766 to be aggregated.

FIG. 14A shows time cycle 1. Input samples y_(n), y_(n−1), y_(n−2), and y_(n−3) are stored in delay line 758. A sum s_(n)=y_(n)+y_(n+1)+y_(n+2)+y_(n+3) is generated and store to delay line 762. The delay line also stores sums of the previous input samples up to s_(n−N). s_(n) and sums that were obtained multiples of 4 time cycles ago (i.e., s_(n−4), s_(n−8), etc.) are multiplied with selected coefficients. The first coefficient of each group of 4 coefficients (i.e., v₁ from coefficient group v₁−v₄, v₅ from coefficient group v₅-v₈, etc.) is selected and multiplied with the appropriate sum. The results are added by accumulator 766 and stored.

In FIG. 14B, time cycle 2, a new input sample y_(n+1) is received, and the old input samples are shifted such that y_(n+1), y_(n), y_(n−1), and y_(n−2) are stored in delay line 758. A new sum based on these values, s_(n+1), is computed. The sums in delay line 762 are also shifted. The second coefficients of the coefficient group (v₂, v₆, v₁₀, etc.) are selected and multiplied with sums s_(n+1), s_(n−), s_(n−7), etc. The results are added to the existing value in accumulator 766.

In FIG. 14C, time cycle 3, a new input sample y_(n+2) is received, and the old input samples are shifted such that y_(n+2), y_(n+1), y_(n), and y_(n−1) are stored in delay line 758. A new sum based on these values, s_(n+2), is computed. The sums in delay line 762 are also shifted. The third coefficients of the coefficient group (v₃, v₇, v₁₁, etc.) are selected and multiplied with sums s_(n+2), s_(n−2), s_(n−6), etc. The results are added to the existing value in accumulator 766.

In FIG. 14D, time cycle 4, a new input sample y_(n+3) is received, and the old input samples are shifted such that y_(n+3), y_(n+2), y_(n+1), and y_(n) are stored in delay line 758. A new sum based on these values, s_(n+3), is computed. The sums in delay line 762 are also shifted. The fourth coefficients of the coefficient group (v₄, v₈, v₁₂, etc.) are selected and multiplied with sums s_(n+3), s_(n−1), s_(n−5), etc. The results are added to the existing value in accumulator 766. At this point, the accumulator value that has been accumulating over 4 time cycles is equivalent to {circumflex over (ω)}_(n+3). The value is sent to the output, and accumulator 766 is cleared. The cycles repeat and another output sample is generated 4 cycles later. An output delay line is optionally included to store more than one output samples.

FIG. 15 is a flowchart illustrating another embodiment of a signal processing process. Process 850 may be implemented on an averaging persistence filter such as 752 of FIGS. 14A-14D. The process initiates when a digital signal is received (852). In example filter 752, the samples of the digital signal are received and fill up the delay lines. A plurality of sums is obtained (854). As described above in FIGS. 14A-14D, the sums are obtained by adding a new set of consecutive samples, or by taking a previously calculated sum from a memory location in the delay line. Selective ones of a plurality of coefficients are multiplied with the sums to generate a plurality of products (856). At least some of the multiplications are done using a shared multiplier. The products are accumulated (856). It is determined whether the accumulated value is ready to be output (858). The value is ready to be output when the process has been repeated R times since the beginning of the process or since the last reset. If the process has not been repeated R times since the beginning or since the last reset, it is repeated. More sums and more products are obtained, and the products continue to accumulate. If, however, the process has been repeated R times, the accumulated result is sent to the output, and the value in the accumulator resets to 0 (860). The process can be repeated from the beginning again.

In some embodiments, the averaging persistence filter is used to implement a separation block such as separation block 602 of FIG. 6. FIG. 16 is a block diagram illustrating an embodiment of a separation block that includes an embodiment of an averaging persistence filter. In this example, separation block 770 includes an averaging persistence filter 752 that is the same as filter 752 shown previously. The output of the averaging persistence filter is subtracted from a sum of 4 consecutive samples w_(n+3) to generate an average error ê_(n+3). The error is fed back to filter 752 to adapt the filter coefficients according to equation (30). The separation block may be included in an adaptive self-linearization module such as 402 or 422 of FIG. 4A or 4B, respectively. In a system such as 420 which employs a shadow DSP for reduced latency, the adaptive linearization module implemented using an averaging persistence filter is configured to run at a lower update rate. Once the DSP in the adaptive filter block converges and feeds its updated coefficients to shadow DSP 424, however, the shadow DSP can operate at full data rate, i.e., an output of the shadow DSP is generated for every input sample.

FIG. 17 is a flowchart an embodiment of a signal processing process. Process 870 may be implemented on a separation block that includes an averaging persistence filter, such as separation block 770 of FIG. 16. Process 870 begins with providing a plurality of coefficients V (872). A digital signal that includes an undistorted component and a distorted component are received (874). An average error is determined (876). As described above, the average error ê_(n+3) is equivalent to the difference between an aggregate of several linearly enhanced components obtained during R time cycles and a sum of several input samples that received during the R time cycles. In some embodiments, to obtain an aggregate of the reference components, subsets of consecutive input samples are grouped, and sums of the subsets are computed and used to multiply with the coefficients. It is determined whether the average error meets some predefined threshold (878). If so, the filter has converged and the process can stop. The output of the averaging persistence filter is sent to the output of the separation block as the reference component. If, however, the average error does not meet the predefined threshold, the error signal is fed back to adapt the coefficients and reduce error. The process is repeated until the error meets the threshold and the filter converges.

Adaptive Linearization of Distortion Attributed to Exogenous Signals

FIG. 18A is a block diagram illustrating an embodiment of an ideal receiver system. As used herein, the receive path circuitry refers to a circuitry that demodulates and samples a received signal. In example receive path circuitry 1800, an analog radio frequency (RF) input signal is received. Mixer 1802 demodulates the RF signal by multiplying the RF signal with an ideal local oscillator signal, which is a pure tone at frequency f_(LO) without any harmonics. Demodulated signal 1806 lies in a lower frequency range and is referred to as the intermediate frequency (IF) signal. The IF signal is sent to ADC 1804, which samples the IF signal at a rate of f_(s) and converts the analog IF signal into a digital signal y_(n).

FIG. 18B includes frequency diagrams illustrating signals in ideal system 1800. Signal diagram 1850 shows the signal spectrum of the RF signal with a center frequency of ω and the local oscillator signal at frequency f_(LO). There is no noise signal of any kind. Frequency diagram 1852 shows the demodulated IF signal. The IF signal is sampled at a rate of f_(s). In the ideal case, f_(s)/2 is greater than the bandwidth of the IF signal that is sampled, therefore there is no interference due to aliasing. The passband component 1854 in the digital signal is identical to analog IF signal 1852.

FIG. 19A is a block diagram illustrating a model of an example of a non-ideal receiver system. In this example, system 1900 also includes a mixer and an ADC, but mixer 1906 and ADC 1904 have nonlinearities. Furthermore, certain exogenous signals are present in the system. Nonlinearities and exogenous signals contribute to distortion. As used herein, exogenous signals refer to unwanted signals that are present in the circuitry. In other words, any signal other than the known, ideal signal such as the input and f_(LO) is considered exogenous. Examples of the types of exogenous signal include local oscillator harmonics, external clock signals and harmonics, and power supply noise. Exogenous signals are sometimes generated by a circuitry that is other than the receiver circuitry, such as a transmitter circuitry or a digital signal processing circuitry that is included on the same chip as the receiver circuitry. Unlike random noise, frequency information associated with the exogenous signals can be determined. For example, based on the chip layout, it may be known that a specific clock frequency is used by a non-receiver circuitry; given the local oscillator frequency, any harmonics of the local oscillator signal may also be determined. These exogenous signals mix with the input RF signal, creating undesirable distortion. The exogenous signals are collectively referred to in the diagram as signal Ex. In the model shown, signal Ex is added into the demodulated signal, causing distortion in the sampled signal y_(n). Note that in the figure mixer 1906 corresponds to a physical mixer element in the circuit. Adder 1910, however, may not have a physical counterpart in the circuit but is used to illustrate the additive effects of the exogenous signal Ex.

FIG. 19B are frequency diagrams illustrating an example in which there is distortion attributed to exogenous signals and nonlinearities. The signals in the figure may be generated by, for example, system 1900. In this example, an RF signal 1950 with a center frequency of ω is demodulated by mixing with a local oscillator signal f_(LO). Also present is an exogenous signal that includes frequency components f_(Ex1) and f_(Ex2). For purposes of example, f_(Ex1) and f_(Ex2) are assumed to be signals that are independent of f_(LO). In some embodiments, the exogenous signal is a harmonic of f_(LO) that is located at an integer multiple of f_(LO). Additional exogenous signals and/or other exogenous signals at different frequencies are possible in other systems. In the example shown, f_(LO) mixes with the RF signal, generating a demodulated analog signal 1952. As described previously in FIGS. 3A-3C, nonlinearities in the signal path (for example, nonlinearities in the mixer and/or the ADC) lead to distortion. Signal 1954 corresponds to the nonlinear distortion component in the demodulated and sampled signal.

Signal 1956 shows the demodulated, distorted signal as well as the exogenous signals f_(Ex1) and f_(Ex2). This signal is sampled by an ADC (e.g., ADC 1904 of FIG. 19A) at a sampling rate of f_(s) to generate a digital signal. Signal 1958 shows the resulting sampled signal that includes distortion attributed to the exogenous signals. The frequency range of interest is between 0−f_(s)/2 (referred to as the passband) and signals outside this range are not shown.

Generally, for an exogenous signal at frequency f_(Ex1) the corresponding sampled frequency that appears in the passband, f_(Ex), is determined as follows:

f′ _(Ex)=(f _(Ex)) Modulo (f _(s)/2)  (31)

In the example shown in FIG. 19B, since the frequency of f_(Ex1) is less than f_(s)/2, there is no aliasing and the sampled signal f_(Ex1) is the same as f_(Ex1). In contrast, the frequency of f_(Ex2) is greater than f_(s)/2. The sampled signal that appears in the passband is an aliased image of f_(Ex2) which is labeled as f_(Ex2) in the diagram and appears at (f_(Ex2)) Modulo (f_(s)/2).

Given the frequencies for f_(s) and f_(Ex), the frequencies of the sampled exogenous signal that contribute to distortion can be derived using equation (31) above. Frequencies that fall into the signal band of interest (e.g., a passband between 0−f_(s)/2) are considered and frequencies outside the signal band of interest can be ignored. In some embodiments, there are a limited number of choices for f_(s) and f_(Ex) and a table is used to map various exogenous frequencies to their sampled frequency locations. The table is stored in memory and used for look-ups during operation. For example, in one embodiment a system with a receiver that includes an ADC operating at a sampling rate of f_(s)=100 Mega Samples per Second (MSPS). Some possible sources for exogenous signals include a local oscillator (LO) operating at 325 MHz and a digital clock operating at 35 MHz. The exogenous signal due to the LO frequency is stored in memory as 325. Modulo f_(s)/2=325 Modulo 50=25 MHz, and the exogenous signal due to the digital clock is stored in memory as 35 MHz.

It is possible to use an adaptive self-linearization system such as 400 or 420 to correct a distorted signal such as 1958. More accurate linearization with a higher convergence speed can be achieved by using a distortion reducing receiver system that performs linearization based on the input plus some additional information associated with the exogenous signals. FIG. 20 is a block diagram illustrating a distortion reducing receiver system embodiment. In this example, an adaptive distortion reduction module 2006 is used to compensate for distortions in the output of ADC 2004. The adaptive distortion reduction module is configured to perform adaptive linearization to obtain a corrected signal that is substantially undistorted, using a process similar to 500 or 550 of FIGS. 5A-5B. The linearization is based at least in part on the distorted signal y_(n) and signal information associated with the exogenous signal. In some embodiments, frequency information of the distortion attributed to the exogenous signal is supplied to the adaptive distortion reduction module. Although the adaptive distortion reduction module requires some existing information about the exogenous signal to facilitate the linearization process, no additional external training signal with exact known characteristics is required.

FIG. 21 is a flowchart illustrating an embodiment of a process for generating a digital signal with reduced distortion. Process 2100 may be performed on a receiver system such as system 2000. The process when an analog signal is received (2102). The analog signal is demodulated to generate a demodulated signal (2104). The demodulated signal is converted to a digital signal (2106). The digital signal includes an undistorted ideal component, and a distorted component with distortion that is at least in part attributed to an exogenous signal. FIG. 19B, signal 1958 illustrates an example of such a digital signal. Linearization is performed based at least in part on the digital signal and information associated with the exogenous signal (2108). In some embodiments, the information includes frequency information of the exogenous signal. Using this information, the corresponding sampled signal frequency can be derived. In some embodiments, the information includes information about the sampled signal frequency and the information is directly input into the adaptive distortion reduction module. The linearization process employed in some embodiments includes generating a replica signal that is substantially similar to the distorted component, and obtaining the corrected signal by subtracting the replica signal from the distorted signal.

FIG. 22 is a block diagram illustrating an embodiment of an adaptive distortion reduction system. Adaptive distortion reduction system 2200 shown in this example includes a shadow DSP 2218 and is similar to the low latency adaptive self-linearization system 420 of FIG. 4B. In this example, the system includes an interface 2201 configured to receive a distorted signal y_(n), and an adaptive distortion reduction module either directly or indirectly coupled to the interface. The adaptive distortion reduction module includes a separation block 2202 and an adaptive filter block 2212.

Separation block 2202 includes a persistence filter 2204 and a nonlinear target component extractor 2206. A persistence filter such as 702 of FIG. 7 or an averaging persistence filter such as 752 of FIG. 14A described above can be used to implement persistence filter. The separation filter emphasizes the distorted signal and extracts a target signal and a reference signal. In this example, the digital signal with distortion, y_(n), is sent to the separation block, which is configured to extract from the input signal a reference component ŷ_(n) that is a linearly enhanced version of the input signal. Nonlinear signal extractor 2206 includes a delay element 2203 to give the input the same amount of delay as the separation filter. In some embodiments, the nonlinear signal extractor optionally includes a band pass filter, a low pass filter, or a high pass filter. The additional filter is appropriate, for example, in applications where the frequency band of the reference component is known. The nonlinear signal extractor generates the target component η_(n) by subtracting ŷ_(n) from y_(n). η_(n) is fed back to the persistence filter, and is used to adapt filter coefficients using filter adaptation techniques described above. In the example shown in FIG. 19B, given an input signal 1958, the separation block adapts to generate a reference component ŷ_(n) that is close to the undistorted ideal component 1952, and a target component η_(n) that is close to the distortion component of the input (which includes nonlinear distortions and distortions due to the exogenous signals). In this example, the target component is close to nonlinear distortion component 1954 plus f′_(Ex1) and f′_(Ex2).

Returning to FIG. 22, DSP 2208 of the adaptive filter block receives as its input the sum of the distorted sampled signal y_(n) and a signal Q that corresponds to the exogenous signal and/or its alias(es) within the signal band of interest. For purposes of example, assume that the exogenous signal includes two components f_(Ex1) and f_(Ex2) as shown in FIG. 19B, Q corresponds to two tones f′_(Ex1) and f′_(Ex2). The distorted input signal plus the tones are sent to the DSP's input.

In module 2200, the DSP includes an adaptive nonlinear DSP that is similar to DSP 608 described in FIG. 6 above and equations (1)-(10) apply. Here, DSP uses (y_(n)+Q) as its training signal to adapt its filter coefficients. The adaptation process will drive the output {circumflex over (η)}_(n) close to η_(n), and feedback signal e_(n) close to 0 or some predetermined threshold value. Techniques such as LMS, RLS or other suitable adaptive techniques may be used. Once the adaptation converges, given the distorted input signal and the frequencies associated with the exogenous signal, the DSP will generate an output that approximates the distortion component in the input signal. In other words, the DSP is adapted to have a transfer function that approximately equals the distortion function to be corrected. The coefficients of DSP 2208 are replicated in a shadow DSP 2218 to improve latency. The same input (y_(n)+Q) is sent to DSP 2218, which generates an output that is approximately the distortion component. A corrected, mostly distortion free signal x_(n) is obtained by subtracting the distortion component from the input.

In the example shown in FIG. 22, the shifted exogenous signal Q is added to the input y_(n) and the combined signal is sent to the DSP. In some embodiments, rather than adding the signals before they are sent to the DSP, the frequency information of the sampled exogenous signal is programmed into the DSP. Alternatively, frequency information of the exogenous signal and the sampling clock may be programmed into the DSP, which is configured to calculate the sampled frequencies. Only the frequency information is required. The amplitude and phase information is not required.

FIG. 23 is a flowchart illustrating an embodiment of a process for performing adaptive distortion reduction. Process 2300 may be performed by an adaptive distortion reduction module such as 2200. The process starts when a distorted signal is received (2302). The distorted signal includes a distorted component and an undistorted component. The distorted component is at least in part attributed to an exogenous signal. For example, distorted signal 1958 of FIG. 19B has a distorted component that is attributed to the exogenous signals f_(Ex1) and f_(Ex2). In some embodiments, the distorted component is also in part attributed to nonlinearities in the system, such as signal 1954 of FIG. 19B. Linearization is performed based at least in part on the distorted signal itself and information associated with the exogenous signal (2304). For example, in a system such as 2200, frequency information of the exogenous signal and/or its alias(es) is provided to the adaptive distortion reduction module to perform linearization.

FIG. 24A is a flowchart depicting an embodiment of a linearization process. Process 2400 shown in the example may be implemented on an adaptive distortion reduction module similar to 2200 but without the shadow DSP. Process 2400 is included in 2304 of process 2300 in some embodiments. The process begins when a received signal with distortion is separated into a reference component and a target component (2402). The reference component includes an estimate of one or more signal components that cause the distortion in the distorted signal that is received. In some embodiments, the reference component includes an aggregated version of the undistorted component, and in some cases also includes sampled signals that are associated with the exogenous signal and that contribute to the distortion. The target component is the difference between the input signal and the reference component. A digital filter (e.g., a DSP) is adapted to generate a replica distortion signal that is substantially similar to the distorted component (2404). The adaptation is based at least in part on the signal that is received, and information associated with the exogenous signal(s), including frequency information of the exogenous signal and/or of the sampled exogenous signal. The DSP adaptation technique described previously can be used. The replica distortion signal is subtracted from the distorted signal to generate a distortion corrected signal (2406).

FIG. 24B is a flowchart illustrating another embodiment of an adaptive self-linearization process. Process 2450 shown in the example may be implemented on a low latency adaptive self-linearization module such as 2200. Process 2400 is included in 2304 of process 2300 in some embodiments. The process begins with separating a received, distorted signal into a reference signal and a target signal (2452). A first digital filter (e.g., DSP 2208) is adapted to generate a replica distortion signal that is substantially similar to the distorted component, where the adaptation is based at least in part on information associated with the exogenous signal, such as frequency information associated with the sampled exogenous signal (2454). The adaptation technique described previously can be used. For example, in system 2200, the adaption of the DSP is based on (y_(n)+Q). A second digital filter (e.g., DSP 2218) is configured using coefficients from the adapted first digital filter (2356). A second replica distortion signal that is substantially similar to the distorted component is generated using the second digital filter (2458). The second replica distortion signal is subtracted from the received signal to generate a distortion corrected signal (2460).

The above examples show a single demodulation stage that generates a demodulated IF signal. In other systems, multiple stages of mixing may take place. For example, an IF signal maybe demodulated further to a baseband range. The techniques described above are also applicable to such systems.

Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive. 

1. An adaptive distortion reduction system comprising: an input interface configured to receive a distorted signal comprising a distorted component and an undistorted component, the distorted component being at least in part attributed to an exogenous signal; and an adaptive distortion reduction module coupled to the input interface, configured to perform linearization based at least in part on the distorted signal and information associated with the exogenous signal, to obtain a corrected signal that is substantially similar to the undistorted component.
 2. The system of claim 1, wherein performing linearization includes adaptively generating a replica signal that is substantially similar to the distorted component.
 3. The system of claim 1, wherein the distorted component includes distortion attributed to the exogenous signal.
 4. The system of claim 1, wherein the distorted component further includes nonlinear distortion attributed to a receiver circuitry.
 5. The system of claim 1, wherein the information associated with the exogenous signal includes frequency information of the exogenous signal.
 6. The system of claim 1, wherein the information associated with the exogenous signal includes a sampled frequency of the exogenous signal.
 7. The system of claim 6, wherein the sampled frequency f′_(Ex) is determined according to f′_(Ex)=(f_(Ex)) Modulo (f_(s)/2).
 8. The system of claim 1, wherein the exogenous signal includes a signal that is generated by a circuitry other than a receive circuitry.
 9. The system of claim 1, wherein the exogenous signal includes a signal that is associated with a clock signal.
 10. The system of claim 1, wherein the exogenous signal includes a signal that is associated with a power supply.
 11. The system of claim 1, wherein the exogenous signal includes a harmonic of a local oscillator signal.
 12. The system of claim 1, wherein the adaptive distortion reduction module includes a separation block configured to separate from the distorted signal a reference component and a target component.
 13. The system of claim 12, wherein the separation block includes a persistence filter configured to aggregate the distorted signal over a period of time and generate the reference component.
 14. The system of claim 12, wherein the adaptive distortion reduction module further includes an adaptive filter coupled to the separation block, configured to adaptively generate a replica distortion signal that is substantially similar to the distorted component.
 15. A method of signal processing, comprising: receiving a distorted signal comprising a distorted component and an undistorted component, the distorted component being at least in part attributed to an exogenous signal; and performing linearization, based at least in part on the distorted signal and information associated with the exogenous signal, to obtain a corrected signal that is substantially similar to the undistorted component.
 16. The method of claim 15, wherein performing linearization includes adaptively generating a replica signal that is substantially similar to the distorted component.
 17. The method of claim 15, further comprising outputting the corrected signal.
 18. The method of claim 15, wherein the distorted component includes distortion attributed to the exogenous signal.
 19. The method of claim 15, wherein the distorted component further includes nonlinear distortion attributed to a receiver circuitry.
 20. The method of claim 15, wherein the information associated with the exogenous signal includes frequency information of the exogenous signal.
 21. The method of claim 15, wherein the information associated with the exogenous signal includes a sampled frequency of the exogenous signal.
 22. The method of claim 21, wherein the sampled frequency is determined according to f′_(Ex)=(f_(Ex)) Modulo (f_(s)/2).
 23. The method of claim 15, wherein the exogenous signal includes a signal that is generated by a circuitry other than a receive circuitry.
 24. The method of claim 15, wherein the exogenous signal includes a signal that is associated with a clock signal.
 25. The method of claim 15, wherein the exogenous signal includes a signal that is associated with a power supply.
 26. The method of claim 15, wherein the exogenous signal includes a harmonic of a local oscillator signal.
 27. The method of claim 15, wherein performing linearization includes separating from the distorted signal a reference component and a target component.
 28. The method of claim 15, wherein performing linearization includes aggregating the distorted signal over a period of time and generating the reference component.
 29. A computer program product for signal processing, the computer program product being embodied in a computer readable storage medium and comprising computer instructions for: receiving a distorted signal comprising a distorted component and an undistorted component, the distorted component being at least in part attributed to an exogenous signal; and performing linearization, based at least in part on the distorted signal and information associated with the exogenous signal, to obtain a corrected signal that is substantially similar to the undistorted component.
 30. A digital receiver system, comprising: an interface configured to receive an analog signal; a mixer configured to demodulate the analog signal to generate a demodulated signal; an analog to digital converter configured to convert the demodulated signal to a digital signal, the digital signal comprising a distorted component and an undistorted component, the distorted component being at least in part attributed to an exogenous signal; and an adaptive distortion reduction module configured to perform linearization, based at least in part on the digital signal and information associated with the exogenous signal, to obtain a corrected signal that is substantially similar to the undistorted component.
 31. A method of signal processing, comprising: receiving an analog signal; demodulating the analog signal to generate a demodulated signal; converting the demodulated signal to a digital signal, the digital signal comprising a distorted component and an undistorted component, the distorted component being at least in part attributed to an exogenous signal; and performing linearization, based at least in part on the digital signal and information associated with the exogenous signal, a corrected signal that is substantially similar to the undistorted component. 